import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'

export default tseslint.config(
	{ ignores: ['dist'] },
	{
		extends: [js.configs.recommended, ...tseslint.configs.recommended],
		files: ['**/*.{ts,tsx}'],
		languageOptions: {
			ecmaVersion: 2020,
			globals: globals.browser
		},
		plugins: {
			'react-hooks': reactHooks,
			'react-refresh': reactRefresh
		},
		rules: {
			...reactHooks.configs.recommended.rules,
			'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
			'@typescript-eslint/no-unused-vars': 'off', // 关闭未使用变量的警告
			'@typescript-eslint/no-explicit-any': 'off', // 关闭 any 类型警告
			'@typescript-eslint/no-empty-object-type': 'off', // 关闭空对象类型警告
			'react-refresh/only-export-components': 'off',
			'react-hooks/exhaustive-deps': 'off', // useEffect 依赖项警告
			'@typescript-eslint/ban-ts-comment': 'off' // 关闭 ts-comment 警告
		}
	}
)
